package com.kumarn.android.test.gcmtestreceive;


import com.google.android.gcm.GCMBaseIntentService;

import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 *
 * @author masanori
 *
 */
public class GCMIntentService extends GCMBaseIntentService  {

	public GCMIntentService() {
		super(GCMPrefarence.SENDER_ID);
	}

	/**
	 * デバイス登録時に呼び出される
	 * メッセージ送信先識別に使用されるregistrationIdが返される
	 */
	@Override
	public void onRegistered(Context context, String registrationId) {
		Log.w("registration id:", registrationId);
		sendMessage("id:" + registrationId);
	}

	/**
	 * デバイス登録解除時に呼び出される
	 */
	@Override
	protected void onUnregistered(Context context, String registrationId) {
		sendMessage("C2DM Unregistered");
	}

	/**
	 * デバイスの登録、解除時にエラー発生で呼び出される（GCMサーバからの応答）
	 */
	@Override
	public void onError(Context context, String errorId) {
		sendMessage("err:" + errorId);
	}

	/**
	 * デバイスの登録、解除を実行しようとした時にGCMサーバが使用不可のときに呼び出される
	 */
	@Override
	public boolean onRecoverableError(Context context, String errorId) {
		return false;
	}

	/**
	 * GCMメッセージを受信した時に呼び出される
	 */
	@Override
	protected void onMessage(Context context, Intent intent) {
		String str = intent.getStringExtra("TYPE");
		Log.w("TYPE", str);
		sendMessage(str);
		Intent serviceIntent = new Intent(context,StateService.class);
        context.startService(serviceIntent);
	}

	/**
	 * メッセージ受信時処理
	 * @param str
	 */
	private void sendMessage(String str) {
		// メッセージ受信時の動作を記述

	}
}